Digital information protecting method and apparatus, and computer accessible recording medium

ABSTRACT

A method for protecting digital information includes: converting a protected address range into a plurality of address blocks based on a preset conversion unit, and generating an address block rearranging rule using the address blocks as a parameter; when it is desired to load data into an address batch of the protected address range, converting the address batch into a plurality address blocks based on the conversion unit; and locating rearranged addresses of the address blocks in the protected address range according to the address block rearranging rule, and loading the data into the rearranged addresses. Thus, the data can be stored in the address batch scatteredly, and the protected data cannot be recomposed into the original correct data when stolen.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.11/820,082 filed on Jun. 18, 2007, which is a continuation-in-part ofU.S. patent application Ser. 10/103,254 filed on Mar. 19, 2002, thecontents of which are hereby incorporated by reference in theirentirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to a data protecting method and apparatus, moreparticularly to a method and apparatus for protecting digitalinformation, which can prevent unauthorized access to digitalinformation.

2. Description of the Related Art

With the advance of computer technology, almost all governmentorganizations, research centers, academic institutes, and companies nowuse computers to prepare documents and establish files. In addition,with the fast development of computer peripheral storage equipment, theyare now used to store important documents, file data, technical data,confidential data, and backup copies of the data, etc. Use of storagedevices to store documents or files not only can shorten the time tocreate and locate data, but also can reduce use of paper and increasethe lifetime of stored data. Moreover, since portable storage devicesare easy to store, convenient to carry, and compact, users areaccustomed to using portable storage devices to store data and backupdata. However, the convenience provided by portable storage devicesincreases risks of leakage of data stored in a computer. To overcome theaforesaid drawback, various methods of protecting data using encryptionhave been proposed. Nonetheless, since encrypted data may still becracked by processing the encrypted data in a number of computers anddoing a large number of calculations, how to enhance data security sothat protected data cannot be recovered after being stolen is a subjectof primary concern.

SUMMARY OF THE INVENTION

Therefore, an object of the present invention is to provide a digitalinformation protecting method so that the protected digital informationcannot be easily recomposed and recovered.

According to one aspect of the invention, a method for protectingdigital information comprises:

(A) converting a protected address range into a plurality of addressblocks based on a preset conversion unit, and generating an addressblock rearranging rule using the address blocks as a parameter;

(B) when it is desired to load data into an address batch of theprotected address range, converting the address batch into a pluralityaddress blocks based on the conversion unit; and

(C) locating rearranged addresses of the address blocks in the protectedaddress range according to the address block rearranging rule, andloading the data into the rearranged addresses.

According to another aspect of the invention, a method for protectingdigital information comprises:

(A) dividing a protected address range into a plurality of firstconversion batches, converting an address range of each of the firstconversion batches into a plurality of first address blocks based on afirst conversion unit, and generating a first address block rearrangingrule for rearranging the first address blocks using the first addressblocks as a parameter;

(B) dividing the protected address range into a plurality of secondconversion batches, converting an address range of each of the secondconversion batches into a plurality of second address blocks based on apreset second conversion unit, and generating a second address blockrearranging rule for rearranging the second address blocks using thesecond address blocks as a parameter;

(C) dividing the protected address range into at least one thirdconversion batch, converting an address range of said at least one thirdconversion batch into a plurality of third address blocks based on apreset third conversion unit, and generating a third address blockrearranging rule for rearranging the third address blocks using thethird address blocks as a parameter; and

(D) when it is desired to load data into an address batch of theprotected address range, determining the first conversion batch to whichthe address batch belongs, converting the address batch into a pluralityof address blocks based on the first conversion unit, locatingrearranged addresses of the address blocks in the protected addressrange according to the first, second and third address block rearrangingrules, and loading the data into the rearranged addresses thus located.

BRIEF DESCRIPTION OF THE DRAWINGS

Other features and advantages of the present invention will becomeapparent in the following detailed description of the preferredembodiments with reference to the accompanying drawings, of which:

FIG. 1 is a diagram showing primary function blocks of a preferredembodiment of the present invention;

FIG. 2 is a diagram showing primary function blocks of another preferredembodiment of the present invention;

FIG. 3 is a diagram showing primary function blocks of still anotherpreferred embodiment of the present invention;

FIG. 4 illustrates a protected zone address mapping table constructedusing a set address conversion rule in the preferred embodiment of thepresent invention;

FIG. 5 illustrates a protected zone address mapping table constructedusing another set address conversion rule in the preferred embodiment ofthe present invention;

FIG. 6 schematically illustrates an example of encrypting source datausing an encryption algorithm and decrypting encrypted data into thesource data using a decryption algorithm;

FIG. 7 schematically illustrates how a system-specified access domaindefault address sequence is converted into an access domain customizedaddress sequence in the preferred embodiment of the present invention;

FIG. 8 is a preparation operation flowchart of another preferredembodiment of a digital information protecting method according to thepresent invention;

FIG. 9 is an actual access operation flowchart of the preferredembodiment;

FIG. 10 is a schematic diagram to illustrate a first address conversionin the preferred embodiment;

FIG. 11 is a schematic diagram to illustrate a second address conversionin the preferred embodiment;

FIG. 12 is a schematic diagram to illustrate a third address conversionin the preferred embodiment;

FIG. 13 is a flowchart to illustrate still another preferred embodimentof a digital information protecting method according to the presentinvention; and

FIG. 14 is a schematic diagram to illustrate address conversion in thepreferred embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Before the present invention is described in greater detail, it shouldbe noted that like elements are denoted by the same reference numeralsthroughout the disclosure.

FIG. 1 shows a primary function block diagram of the first preferredembodiment of this invention, in which a hardware system 10 comprises acomputer 11 that includes a data encryption/decryption module 20 and astorage space address conversion module 25, and peripheral storageequipment 12 that includes a storage device 30. FIG. 2 shows a primaryfunction block diagram of the second preferred embodiment of the presentinvention, in which the hardware system 10 comprises a computer 11 thatincludes a data encryption/decryption module 20, and peripheral storageequipment 12 that includes a storage space address conversion module 25and a storage device 30. FIG. 3 shows a primary function block diagramof the third preferred embodiment of the present invention, in which thehardware system 10 includes a computer 11, and peripheral storageequipment 12 that includes a data encryption/decryption module 20, astorage space address conversion module 25, and a storage device 30.

The storage space address conversion module 25 provides the followingfunctions: (1) setting an address conversion rule 60 according to anaddress conversion key 95 and a protected zone default address sequence70, and using the address conversion rule 60 to construct a protectedzone address mapping table 65, which converts the protected zone defaultaddress sequence 70 into a protected zone customized address sequence75; and (2) using the protected zone address mapping table 65 to obtainan access domain customized address sequence 85 corresponding to anaccess domain default address sequence 80; or according to the addressconversion rule 60, performing calculations to obtain the access domaincustomized address sequence 85 corresponding to the access domaindefault address sequence 80.

The data encryption/decryption module 20 provides the followingfunctions: (1) encrypting source data 50 into encrypted data 55according to an encryption code 90 and an encryption algorithm 40; and(2) decrypting the encrypted data 55 into the source data 50 accordingto a decryption code 92 and a decryption algorithm 45.

When data is to be stored in a protected zone of the storage device 30,the data encrypt ion/decryption module 20 is used to encrypt the sourcedata 50 into the encrypted data 55, and the storage space addressconversion module 25 is then used to obtain the access domain customizedaddress sequence 85 to which the system-specified access domain defaultaddress sequence 80 corresponds. Subsequently, the encrypted data 55 isstored in storage positions corresponding to the access domaincustomized address sequence 85. On the other hand, when data is to beread, the storage space address conversion module 25 is used to obtainthe access domain customized address sequence 85 to which thesystem-specified access domain default address sequence 80 corresponds,and the encrypted data 55 is then read from the storage positionscorresponding to the access domain customized address sequence 85.Subsequently, the encryption/decryption module 20 is used to decrypt theencrypted data 55 into the source data 50.

The foregoing gives an outline of the primary functions of the presentinvention. An initialization process employing a digital informationprotecting apparatus of the present invention is described as follows:

The storage space address conversion module 25 is used to decide theaddress conversion rule 60 according to the address conversion key 95and the protected zone default address sequence 70 (Pi, i=0, 1, . . . ,n) of a zone to be protected in the storage device 30. The addressconversion rule 60 is used to construct the protected zone addressmapping table 65, which converts the protected zone default addresssequence 70 (Pi, i=0, 1, . . . , n) into the protected zone customizedaddress sequence 75 (Si, i=0, 1, . . . , n). The address conversion rule60 is realized by employing a function which uses the address conversionkey 95 and the protected zone default address sequence 70 (Pi, i=0, 1, .. . , n) as parameters, and the function must satisfy a one-to-onemapping condition in the definition region (Pi, i=0, 1, . . . , n) tothe value region (Si, i=0, 1, . . . , n). Several schemes of generatingthe function are set forth below for the purpose of illustration:

(A) Using only the protected zone address range as parameter. Referringto FIG. 4, the protected zone default address sequence 70 is (0, 1, . .. , 1000), and the range of the addresses therein is therefore 0˜1000.The address conversion rule 60 can be set as:

f(x)=1000−x.

Therefore, the protected zone default address sequence 70 (0, 1, . . . ,1000) is converted into the protected zone customized address sequence75 (1000, 999, . . . , 0) according to the address conversion rule 60.

(B) Using the address conversion key 95 and the protected zone addressrange as parameters. Referring to FIG. 5, the protected zone defaultaddress sequence 70 is (0, 1, . . . , 499), and the address conversionkey 95 is “a·1K9”, i.e., the address conversion ASCII character code is97-49-75-57. The character code sequence is extended using 128, which isnot in use, thereby forming a character code sequence of97-49-75-57-128-128-128-128 . . . The address conversion rule 60 is thusset to be:

96−x if 0≦x<97

145−x+97 if 97≦x<146

f(x) 220−x+146 if 146≦x<221

277−x+221 if 221 ≦x<278

405−x+278 if 278 ≦x<406

499−x+406 if 406 ≦x<500

Therefore, the address conversion rule 60 is used to convert theprotected zone default address sequence 70 (0, 1, . . . , 96 . . . , 145. . . , 220, . . . , 227, . . . , 499) into the protected zonecustomized address sequence 75 (96, 95, . . . , 0 . . . , 97 . . . ,146, . . . , 221, . . . , 406).

The procedure and steps employed by the digital information protectingapparatus to store data in the protected zones of the storage device 30are described as follows:

1. The data encryption/decryption module 20 is used to encrypt thesource data 50 (Di, i=0, 1, . . . , m) into the encrypted data 55 (Ri,i=0, 1, . . . , k). The total length of the source data 50 is greaterthan or equal to the total length of the encrypted data 55. The data tobe stored does not have recognizable continuity so that correct andcomplete reading of the stored data with non-recognizable continuity canbe prevented, thereby enhancing protection of the stored data. This willbe illustrated using the following encryption algorithm:

The encryption code 90 is set to be “SSun,” and the encryption ASCIIcharacter code thereof will be 0x53−0x53−0x75−0x6E. Using a symmetricalalgorithm, the encryption algorithm 40 is set to be:

Xi=Xi˜X _(i−1) if i≠0

-   -   Xi˜0x5353756E if i=0

where i is 8 to 0, “˜” represents an “exclusive or” operation, and Xihas a length unit of 32 bits.

Referring to FIG. 6, the encryption algorithm 40 is used to encrypt thesource data 50 (0x645BCF98, 0x6839274D, 0x4B652188, . . . , 0x7890123E)into the encrypted data 55 (0x3708BAF6, 0x0C62E8D5, 0x235C06C5, . . . ,0x5EA5B9CC).

2. Using the storage space address conversion module 25, and accordingto the protected zone address mapping table 65 or by directly using theaddress conversion rule 60, the system-specified access domain defaultaddress sequence 80 (Ui, i=0, 1, . . . , x) is converted into the accessdomain customized address sequence 85 (Vi, i=0, 1, . . . , x) , which issubsequently stored sequentially. Referring to FIG. 7, the addressconversion rule 60 and the protected zone address mapping table 65 arethe same as those shown in FIG. 4. The system-specified access domaindefault address sequence 80 (1, 2, 4, 6, 7, 996) is converted into theaccess domain customized address sequence 85 (999, 998, 996, 994, 993,4). Therefore, the encrypted data 55 (Ri, i=0, 1, 2, . . . , k) will bestored at storage positions to which the access domain customizedaddress sequence 85 (999, 998, 996, 994, 993, 4) correspond.

The procedure and steps involved when reading the data in the protectedzones of the storage device 30 are described as follows:

1. Using the storage space address conversion module 25, and accordingto the protected zone address mapping table 65 or by directly using theaddress conversion rule 60, the system-specified access domain defaultaddress sequence 80 (Ui, i=0, 1, . . . , x) is converted into the accessdomain customized address sequence 85 (Vi, i=0, 1, . . . , x). Referringto FIG. 7, the address conversion rule 60 and the protected zone addressmapping table 65 are the same as those shown in FIG. 4, and the accessdomain default address sequence 80 (1, 2, 4, 6, 7, 996) that isspecified by the system to be read is converted into the access domaincustomized address sequence 85 (999, 998, 996, 994, 993, 4). Therefore,the encrypted data 55 (Ri, i=0, 1, . . . , k) is read from the storagepositions corresponding to the access domain customized address sequence85 (999, 998, 996, 994, 993, 4).

2. After reading the encrypted data (Ri, i=0, 1, . . . , k) according tothe access domain customized address sequence 85 (Vi, i=0, 1, . . . ,x), the encrypted data 55 (Ri, i=0, 1, . . . , k) is decrypted into thesource data 50 (Di, i=0, 1, . . . , m) using the dataencryption/decryption module 20 and according to the decryption code 92and the decryption algorithm 45. This will be illustrated using thefollowing decryption algorithm:

The decryption code 92 is set to be “SSun,” and the decryption ASCIIcharacter code thereof will be 0x53−0x53−0x75−0x6E. Employing asymmetrical algorithm, the decryption algorithm 45 is set to be:

Xi=Xi˜0x5353756E if i=0

-   -   Xi˜X_(i−1) if i≠0

where i is 0 to 8, “˜” represents an “exclusive or” operation, and Xihas a length unit of 32 bits.

Referring to FIG. 6, the encrypted data 55 (0x3708baf6, 0x0c62e8d5,0x235c06c5, 0x5ea5b9cc) is decrypted into the source data 50(0x645bcf98, 0x6839274d, 0x4b652188, . . . , 0x7890123e) using thedecryption algorithm 45.

FIGS. 8 and 9 show another preferred embodiment of the digitalinformation protecting method according to the present invention. Thisembodiment is implemented in the form of a computer software programstored in a computer accessible recording medium of a digitalinformation protecting apparatus (such as a computer system) so as toprotect digital information stored in a storage device, such as a harddisk. The procedure and steps of executing digital informationprotection through the computer software program of this embodiment willbe described below with reference to FIGS. 8 and 9.

It is first supposed that the size of each storage address is 1 byte,and the basic storage unit of the storage device is 512 bytes (i.e., 1sector). The protected address range of the storage device is from the2048th to the 20973568th byte, which is a total of 20971520 bytes.

In this embodiment, the program is divided into a preparation operationas shown in FIG. 8 and an actual access operation as shown in FIG. 9. Inthe preparation operation shown in FIG. 8, three address conversionrules are first generated through the program according to threedifferent conversion units. Three address conversions are then performedon the address to be accessed in the subsequent actual access operation(as shown in FIG. 9) according to the three address conversion rulesthus generated.

Preparation Operation (see FIG. 8)

1. First Address Conversion

In step 11 of FIG. 1, with 1024 bytes as a conversion batch (hereinafterreferred to as the first conversion batch), the program dividesprotected addresses of 20971520 bytes into 20480 (20971520 bytes/1024bytes) first conversion batches, i.e., 0˜1023, 1024˜2047, 2048˜3071, . .. . Then, with 4 bits as one conversion unit (hereinafter referred to asthe first conversion unit), the address range of each of the firstconversion batches is converted into 2048 (1024 bytes/4 bits) addressblocks (hereinafter referred to as the first address blocks) as shown inFIG. 3. Using the first one of the first conversion batches 0˜1023 as anexample, the first address blocks can be represented as an addresssequence [0, 1, 2, 3, . . . , 2047]. Subsequently, step 12 is carriedout, in which an address block rearranging rule (hereinafter referred toas the first address block rearranging rule) is generated using theaddress range [0, 1, 2, 3, 2047] as a parameter. For example, anirreproducible random number sequence arranging scheme is used.Information, such as utilization rate of a computer processor, hard diskaccess speed, network access data amount, etc., within a period of timeis acquired so as to generate a random number sequence, and the range ofthe random number sequence is adjusted to 0˜2047, e.g., [231, 1038, 3,49, 26, 322, . . . , ]. Thereafter, the i^(th) address in the addresssequence is exchanged with the address at the i^(th) position in therandom number sequence. For example, the 0 ^(th) address in the addresssequence, i.e., “0,” is exchanged with the address at the 0^(th)position in the random number sequence, i.e., “231.” The 1^(st) addressin the address sequence, i.e., “1, ” is exchanged with the address atthe 1^(st) position in the random number sequence, i.e., “1038.”Accordingly, an address block conversion table (hereinafter referred toas the first address block conversion table) [231, 1038, 73, 27, . . . ]as shown in FIG. 10 is generated. The first address block conversiontable of the second one of the first conversion batches is a translation(addition) of the numerical values of the first one of the first addressblock conversion tables with 2048, so on and so forth. Thus, therespective first address block conversion tables of all the firstconversion batches (20480 batches) can be obtained.

Since the aforesaid random number sequence cannot be reproduced, theprogram must permit storage of the random number sequence or the firstaddress block conversion tables to facilitate future use of the same foraddress conversion to access data.

2. Second Address Conversion

In step 13, with 81920 bytes as one conversion batch (hereinafterreferred to as the second conversion batch), as shown in FIG. 11, theprogram divides the 20971520 bytes of the protected addresses into 256(20971520 bytes/81920 bytes) second conversion batches, i.e., 0˜81919,81920˜163839, 163840˜245759, . . . . Subsequently, using 640 bytes asone conversion unit (hereinafter referred to as the second conversionunit), the address range of each of the second conversion batches isconverted into 128 (81920 bytes/640 bytes) address blocks (hereinafterreferred to as the second address blocks), as shown in FIG. 11. Usingthe first one of the second conversion batches 0˜81919 as an example,the converted second address blocks can be represented as an addresssequence [0, 1,2, 3, . . . 127]. Thereafter, step 14 is carried out togenerate an address block rearranging rule (hereinafter referred to asthe second address block rearranging rule) using the address range [0,1, 2, 3, . . . , 127] as a parameter. For example, an encryptionsequence arranging scheme, which employs a data encryption standard (DESfor short) to rearrange the address sequence [0, 1, 2, 3, . . . , 127],is used. First, the address sequence [0, 1, 2, 3, . . . , ] is expressedin binary form as a binary number sequence [0000000, 0000001, 0000010,0000011, . . . ]. Subsequently, using a DES calculation process, thebinary number sequence [0000000, 0000001, 0000010, 0000011, . . . ] isencryptedusinga code, e.g., “1h %j9˜&f”, into [0101000, 1000100,1100000, 0011000, . . . ], which, when expressed in decimal form,becomes [40, 68, 96, 24, . . . ]. Thereafter, the i^(th) address in theaddress sequence is exchanged with the address at the i^(th) position inthe number sequence. For example, the 0^(th) address in the addresssequence, i.e., “0,” is exchanged with the address at the 0^(th)position in the number sequence, i.e., “40”. The 1^(st) address in theaddress sequence, “1,” is exchanged with the address . at the 1^(st)position in the number sequence, i.e., “68”. In this way, an addressblock conversion table (hereinafter referred to as the second addressblock conversion table) [40, 68, 101, 8, . . . ] as shown in FIG. 11 canbe obtained. The second address block conversion table of the second oneof the second conversion batches is a translation (addition) of thenumerical values of the first one of the second address block conversiontables with 128, so on and so forth. Thus, the respective second addressblock conversion tables of all the second conversion batches (256batches) can be obtained.

Furthermore, since the aforesaid number sequence is generated using anencryption process, the program must permit storage of the encrypt ioncode to facilitate future use of the same for address conversion toaccess data.

3. Third Address Conversion

In step 15, the program sets the conversion batch for a third conversion(hereinafter referred to as the third conversion batch) to be 20971520bytes (i.e., size of the range of the protected addresses) and, with81920 bytes as one conversion unit (hereinafter referred to as the thirdconversion unit), the third conversion batch of 20971520 bytes isconverted into 256 (20971620 bytes/81920 bytes) address blocks(hereinafter referred to as the third address blocks). Therefore, theconverted third address blocks can be expressed as an address sequence[0, 1, 2, 3, . . . , 255]. Subsequently, step 16 is carried out togenerate an address block rearranging rule (hereinafter referred to asthe third address block rearranging rule) using the address range [0, 1,2, 3, . . . , 255] as a parameter. For example, a reproducible randomnumber sequence arranging scheme can be used, which employs a computerfunction Rand with a seed, e.g., 27498, and the random number sequenceis adjusted to be one in a range from 0 to 255, e.g., [12, 187, 3, 49,26, 244, . . . , ]. Thereafter, the i^(th) address in the addresssequence is exchanged with the address at the i^(th)position in therandom number sequence. For example, the 0^(th) address in the addresssequence, i.e., “0,” is exchanged with the address at the 0^(th)position in the random number sequence, i.e., “12”. The 1^(st) addressin the address sequence is exchanged with the address at the 1^(st)position in the random number sequence, i.e., “187”. In this manner, anaddress conversion table (hereinafter referred to as the third addressconversion table) [12, 187, 36, 28, . . . ], as shown in FIG. 12, can beobtained.

In addition, since the aforesaid random number sequence is generatedusing the reproducible random number sequence arranging scheme, theprogram must permit storage of the seed value of the computer functionRand so as to facilitate future use of the same for address conversionto access data.

Therefore, in step 21 of FIG. 9, when the program receives from anoperating system of the computer a request to write data onto a storagedevice, e.g. , to write data to the 2043^(rd)˜2057^(th) byte-addressbatch of the storage device 30, since some of the addresses onto whichthe data is to be written are in a non-protected range, i.e., the2043^(rd)˜2047^(th) bytes, the program will first cause writing of data(by directly executing a data writing operation) to the non-protectedrange, before causing writing of data to the protected range, i.e., the2048^(th)˜2057^(th) bytes.

Furthermore, since the data in this embodiment has to be encryptedbefore storage, and since the amount of data that is processed duringeach decryption/encryption is 8 bytes, the program needs to adjust thewrite range to the 2048^(th)˜2063^(rd) bytes (i.e., an integer multipleof 8 bytes), and encrypt and write the data in two operations. Inaddition, since the area, i.e., the 2048^(th)˜2055^(th) bytes, to whichdata is written for the first time is a data area that needs to beupdated entirely, the program does not need to first execute datareading. The write operation can be executed directly after encryptionof the data.

For example, if the data to be written is:

-   -   0x75, 0x52, 0x21, 0x67, 0x45, 0x9A, 0xB5, 0xC3,        the encrypted data resulting from DES encryption of the data        using an encryption code [9dY2aB] is:    -   0x9D, 0xC5, 0xF7, 0x11, 0x0A, 0x83, 0x17, 0x44.

Therefore, before writing the data to the storage device 30, in order toprotect the encrypted data, the program according to this inventionpermits three address conversions to be performed on the address range,i.e., the 2048^(th)˜2055^(th) bytes, to which data is written for thefirst time, according to the first, second and third address blockrearranging rules generated above, so as to find the write addresses forthe encrypted data.

Actual access operation (see FIG. 9)

1. First Address Conversion

Initially, in step 22, the program determines the first conversion batchto which the address batch 2048˜2055 belongs, and learns that theaddress batch 2048˜2055 belongs to the aforesaid first one of the firstconversion batches, i.e., 0˜1023 bytes. Therefore, the write addressrange, i.e., the 2048^(th)˜2055^(th) bytes (a total of 8 bytes), isconverted into sixteen address blocks based on the first conversion unit(i.e., 4 bits), which are expressed as an address sequence [0, 1, 2, . .. , 15]. Subsequently, step 23 is performed to locate the rearrangedaddress sequence [231, 1038, 73, 23, . . . ] (hereinafter referred to asthe first address sequence) to which the address sequence [0, 1, 2, . .. , 15] corresponds based on the first address block conversion tablegenerated in accordance with the first address block rearranging rule.

2. Second Address Conversion

First, in step 24, the program determines the second conversion batch towhich the values in the first address sequence belong. Supposing all thevalues in the first address sequence [231, 1038, 73, 23, . . . ] afterconversion fall within 0˜1280 (1280=640 bytes/4 bits), it can be knownthat the 0˜1280 address batch belongs to the first one of the secondconversion batches in the second address conversion, and is locatedwithin the address range of the first one of the second address blocks,i.e., [0], in the second block address sequence [0, 1, 2, . . . , 128].In step 24, the program learns from the second address block conversiontable generated based on the second address block rearranging rule thatthe value in the second address block conversion table [40, 68, 101, 8,. . . ] to which the first one of the second address blocks, [0],corresponds is [40]. Therefore, the addresses in the first addresssequence are translated to the address range of the fortieth secondaddress block, i.e., 51200 (40×1280 bytes) is added to each of thevalues in the first address sequence [231, 1038, 73, 23, . . . ], inwhich the address range of each of the second blocks is 1280 bytes.Thus, a second address sequence [51431, 52238, 51203, 51202, . . . ] canbe obtained.

3. Third Address Conversion

Similarly, in step 25, the program first determines the third conversionbatch to which the values in the second address sequence [51431, 52238,51203, 51202, . . . ] belong, and finds that all the values in thesecond address sequence [51431, 52238, 51203, 51202, . . . ] fall within0˜163840 (163840=81920 bytes/4 bits), i.e., the range of the first oneof the third address blocks, i.e., [0], in the third address blocksequence [0, 1, 2, 3, . . . , 256] of the third conversion batch.Moreover, it can be known from the third address block conversion table[12, 187, 36, 28, . . . ] generated based on the third address blockrearranging rule that the value in the third address block conversiontable [12, 187, 36, 28, . . . ] to which the first one of the thirdaddress blocks, i.e., [0], corresponds is [12]. Therefore, the addressesof the second address sequence are translated to the address range ofthe twelfth one of the third address blocks of the third conversionbatch, i.e., 1966080 (12×163840 bytes) is added to each of the values inthe second address sequence [231, 1038, 73, 23, . . . ], in which theaddress range of each of the third address blocks is 163840 bytes .Thus, a third address sequence [2017511, 2018318, 2017283, 2017282, . .. ] can be obtained.

Finally, in step 26, the program converts the addresses in the thirdaddress sequence into the addresses to which data is to be actuallywritten in the storage device 30 based on a storage unit of the storagedevice. For example, assuming that the storage unit of the storagedevice 30 is 512 bytes (1 sector), the addresses in the third addresssequence which correspond to the write addresses of the storage deviceare [1970.xx, 1971.xx, 1970.xx, 1970.xx, . . . ], respectively, in which1970.xx means 2017511/1024 (512 bytes/4 bits)=1970 . . . 231(remainder), i.e., the 231st address of the 1970 sector.

Subsequently, after the encrypted 8 -byte data is divided into 16 datablocks in write units of 4 bits, the data is written to the writeaddress [1970.xx, 1971.xx, 1970.xx, 1970.xx, . . . ] of the storagedevice 30 in sequence (i.e., each data block is stored in the first fourbits or last four bits of each write address).

After completing the first data writing, the program processes thesecond data writing. Since the data in the 2058^(th)˜2063^(rd) bytes ofthe 2056^(th)˜2063^(rd) bytes of the second data writing range is not tobe updated, the program must first read the data on the2056^(th)˜2063^(rd) bytes, decrypt the data, update the data in the2056^(th)˜2057^(th) bytes, and encrypt all the data once again.Thereafter, the rearranged addresses (i.e., the third addresses) of the2056^(th)˜2063^(rd) byte-address batch after address conversion arefound according to the above-described method, and are converted intoactual write addresses of the storage device 30. Subsequently, theencrypted data is written to the storage device 30.

From the foregoing description, it is apparent that in the digitalinformation protecting apparatus of this embodiment, the protectedaddress range of the storage device undergoes multiple conversions(three conversions in this embodiment, but may be two conversions orjust one basic conversion) using different conversion rules to beremapped to different addresses, so that the data written to theprotected address range can be scattered and distributed tonon-consecutive addresses in the protected address range. Thus, even ifthe data stored in the storage device is stolen, the scattered datacannot be recomposed into the original encrypted data, thereby affordingfull and strong protection to the data stored in the storage device.

FIG. 13 shows another preferred embodiment of the digital informationprotecting method according to the present invention, which is appliedto a server end and a client end that transmit data over a wired or awireless network so as to provide protection to segments of datatransmitted by a transmitting end (the server end or the client end).Therefore, the digital information protecting method of this embodimentis realized in the form of a computer software program in a computeraccessible recording medium of a digital information protecting device(such as a computer system) disposed at the server end and/or the clientend so as to protect digital information transmitted to the server endfrom the client end, and/or digital information transmitted to theclient end from the server end.

Using an example where the preset data unit is 1 byte and the unit dataamount transmitted is 8 bytes, when the server end and the client endneed to transmit data to each other, a communication connection has tobe established first. After the communication connection is established,identity authentication, protected zone begin and end signalcommunication, storage space address conversion rule and codecommunication, data encryption/decryption and code communication areperformed. The identity authentication procedure is described brieflyhereinbelow using a conventional authentication method.

During identity authentication, each of the server end and the clientend has its own public-key infrastructure (PKI). The client end willfirst generate a random sequence signal as an identity authenticationvalue. For example, with a current utilization rate of the CPU as a seedvalue, eight consecutive bytes, such as [32, 145, 204, 9, 158, 3, 222,68], are acquired using a Rand function, and values of two consecutive16 bytes are acquired using the Rand function as the protected zonebegin signal, such as [129, 33, 56, 188, 7, 8, 251, 2, 139, 193, 6, 88,27, 18, 201, 12], and the end signal, such as [42, 111, 2, 38, 107, 248,51, 72, 10, 31, 176, 238, 9, 45, 35, 142]. Moreover, an addressconversion rule is set using a preset conversion scheme (to be describedhereinafter), and an address conversion code is set to be the values offour consecutive bytes, such as [13, 213, 6, 88], which are acquiredusing the Rand function. A preset DES (digital encryption standard) isused for data encryption/decryption. The encryption code is values ofeight consecutive bytes acquired using the Rand function, e.g., [6, 23,145, 231, 255, 9, 83, 121].

Therefore, after the client end has established and set the transmissionbegin and end signals, and the address conversion rule and conversioncode, such data is encrypted with a public key of the server end whichwas obtained from certificate authorities or pre-stored in the clientend, and is transmitted to the server end.

After the server end has received the aforesaid data, the server enddecrypts the received data using a private key thereof, encrypts theidentity authentication value (random sequence signal) obtained fromdecryption with a public key of the client end which was obtained fromthe certificate authorities or pre-stored in the server end, andtransmits the same to the client end.

After the client end has received the confirmation data from the serverend, the client end decrypts the data with a private key thereof, andcompares the identity authentication value (random sequence signal)obtained from decryption with the identity authentication valuegenerated previously so as to confirm the identity of the server end.

The same confirmation procedure is initiated and confirmed at the serverend but in a reverse direction from the server end to the client end.Thereafter, each of the client end and the server end can send theprotected zone begin signal thereof, and protect the data using dataencryption and the address conversion rule before transmission. When theserver end or client end receives the protect zone begin signal from thecounterparty, the received data must be converted using a schemespecified in a communication procedure, and the data must be decryptedto obtain the correct data.

In addition, when transmitting a protected data string, the number ofbytes of effective data sent must be recorded in a field at thebeginning of the string, and the amount of data transmitted must be aninteger multiple of the unit data amount of 8 bytes, deficiency beingcompensated for by a random number or any other arbitrary number. Forexample, when data of 59 bytes is to be transmitted, the first two bytesof the data string must be used to record the number 59, and three bytesof blank data must be added to the end of the data string (i.e. ,59+2+3=64) to constitute eight sets of 8-byte data.

The step of encryption is the same as that described hereinabove, andwill not be repeated herein for the sake of brevity. Suppose these eightsets of data are encrypted into (0x23, 0x43, 0xF6, 0xA8, 0x07, 0x8D,0x51, 0x92) ( . . . ) ( . . . ) ( . . . ) ( . . . ) ( . . . ) ( . . . )( . . . ).

The digital information protection method of this embodiment is as shownin step 61 of FIG. 13. First, as shown in FIG. 14, the program permitsconversion of a protected address range to be protected, i.e., the 8-byte address range of each data set of this embodiment at a presetconversion unit, e.g., 2 bits, into 32 address blocks (8 bytes/2 bits).Subsequently, in step 62, the program uses the address blocks as aparameter to generate an address block rearranging rule which, in thisembodiment, employs a modified congruential method (see D. E. Knuth, TheArt of Computer Programming, Vol., 2: Seminumerial Algorithms, Chapter3, Addison-Wesley, 1969) as the random sequence generating method, inwhich according to a preset address conversion code [13, 213, 6, 88], aprime number Prml is selected to be the thirteenth prime number, i.e.,443, from 373 (a randomly selected value, which should not be too large,in order that a computed value of a prime number calculating equation{Rm[i+1]=MOD (Mult . . . . )} that is decided after successivelyselecting the prime numbers [443, 1871, 401, 947] will not be greaterthan a numerical value range of the processor). Prime number Prm2 is the213^(rd) prime number, 1871, from 373. Pls is the 6^(th) prime number,401, from 373. The initial value Rm[0] of the random number sequence isthe 88^(th) prime number, 947, from 373.

The random number sequence values are calculated as follows:

Mult=Prm1×Prm2+1=165240

Div=Prm1×Prm2×Prm2=61634147

Rm[i+1]=MOD(Mult×Rm[i]+Pls, Div)=Mod(165240×Rm[i]+401, 61634147)

Rm=[947, 33214387, 9420372, 51887196, 37346565, 27432626, 22145379,21484824, 25450961, 34043790, 47263311, 3475377, 25948282, . . . ]. Atotal of 32 values are acquired.

The values of Rm are each divided by 32 to obtain remainders Rma: [19,19, 20, 28, 5, 18, 3, 24, 17, 14, 15, 17, 26, . . . ], a total of 32values.

Subsequently, value of the Rma [i]^(th) address is stored at the[i]^(th) address in sequence. If the value of Rma[i] has already beenused, an incremented value (incremented progressively to a value thathas never been used before and that is a remainder of 32) of Rma[i] isstored at the [i]^(th) address. Thus, an address block conversion tableRM as shown in FIG. 14 can be obtained, which is [19, 20, 21, 28, 5, 18,3, 24, 17, 14, 15, 22, 26 . . . ].

Therefore, after the aforesaid address conversion rule and the addressblock conversion table RM have been constructed, in step 63, when it isdesired to load the first set of encrypted data into an address batch(i.e., the 8 -byte protected address range), the 8-byte address space isfirst converted into 32 address blocks using 2 bits as one conversionunit. Thereafter, based on the address block conversion table RM, theaddresses of the address blocks in the address batch are rearranged.Subsequently, the first set of encrypted data is split into 32 datablocks using 2 bits as one storage unit, which are expressed in thedecimal system into [0, 2, 0, 3, 1, 0, 0, 3, 3, 3, 1, 2, 2, 2, 2, 0, 0,0, 3, 3, 2, 0, 3, 1, 2, 2, 0, 1, 2, 1, 0, 2]. In step 65, the 32 datablocks are stored in sequence into the rearranged 32 address blocks.Therefore, as shown in FIG. 14, the first set of encrypted data, afterbeing stored in the rearranged 32 address blocks, become [3, 2, 0, 2, 0,3, 3, 2, 0, 2, 0, 3, 0 . . . ]. Similarly, the second to eight sets ofencrypted data are rearranged using the aforesaid address conversionscheme, and the data are thereafter transmitted in the above-describedmanner.

It is apparent from the foregoing that, in this embodiment, by providinga digital information protecting apparatus at the transmitting end toconvert the address batch (i.e., the aforesaid protected address range)taken up by the unit data amount to be transmitted into a plurality ofaddress blocks based on a conversion unit, by generating an addressconversion rule based on the address blocks, and by generating anaddress conversion table from the rule, before transmission of the data,the address batches occupied by the data are converted into a pluralityof address blocks based on the conversion unit, and the addresses of theaddress blocks are rearranged according to the previously generatedaddress conversion rule or the address conversion table. The data isthereafter loaded into the rearranged address blocks in sequence to forma data sequence, and is subsequently transmitted. In this way, since thedata has been sufficiently scattered prior to transmission, theencrypted data cannot be recomposed into the original encrypted dataeven if intercepted during the process of transmission, therebyproviding complete and strong protection during the process oftransmission.

In addition, it is noted that although the digital informationprotecting method is realized in the form of a computer program softwareadapted to be stored in a computer system, the method of the presentinvention can also be implemented using an integrated circuit, anelectronic circuit, or a once-programmable electronic circuit (orprogrammable logic circuit) that may or may not include a centralprocessor, and that has logical computation capability.

Furthermore, in order to prevent unauthorized access to the addressconversion scheme which may result in cracking of the encrypted data,the multiple (three) conversion procedures executed by the firstpreferred embodiment can be implemented and controlled by differentdevices. For instance, the code inputted by the user can be used as theconversion code in the first address conversion, the conversion tableread from the chip card inserted into the computer system by the user isused to execute the second address conversion, and the network servercontrols and executes the third address conversion. Such a controlscheme can be applied in the aforesaid preparation operation and actualaccess operation.

Furthermore, the address conversion rule, the address conversion table,or the conversion code generated in the above-described embodiments canbe stored in a readable (or writable) storage medium that utilizes amagnetic property, optics, integrated circuit, electronic circuit, orelectromagnetic waves, such as a magnetic card, CD, DVD, Smart Card,RamDisk, chip card, RF device, and IRED device. Certainly, the aforesaidconversion code may be inputted by the user via a keyboard or acquiredfrom biological attributes of the user to thereby further prevent easyaccess to the address conversion scheme.

While the present invention has been described in connection with whatare considered the most practical and preferred embodiments, it isunderstood that this invention is not limited to the disclosedembodiments but is intended to cover various arrangements includedwithin the spirit and scope of the broadest interpretation so as toencompass all such modifications and equivalent arrangements.

1. A method for protecting digital information, comprising: (A)converting a protected address range into a plurality of address blocksbased on a preset conversion unit, and generating an address blockrearranging rule using the address blocks as a parameter; (B) when it isdesired to load data into an address batch of the protected addressrange, converting the address batch into a plurality address blocksbased on the conversion unit; and (C) locating rearranged addresses ofthe address blocks in the protected address range according to theaddress block rearranging rule, and loading the data into the rearrangedaddresses.
 2. The method for protecting digital information according toclaim 1, wherein the protected address range is a storage address spaceof a storage device, and in step (C), prior to loading the data into therearranged addresses, each of the rearranged addresses is converted intoan actual write address of the storage device according to a storageunit of the storage device.
 3. The method for protecting digitalinformation according to claim 1, wherein the conversion unit is one of1 byte, 4 bits and 2 bits.
 4. The method for protecting digitalinformation according to claim 1, wherein, in step (A), anirreproducible random sequence arranging scheme is used as the addressblock rearranging rule, and includes utilizing operational informationof internal hardware of a computer to generate a random number sequenceranging from 0 to the number of the address blocks, and exchanging anith address block with an address block having an ith position in therandom number sequence to thereby generate an address conversion table,and wherein, in step (C), the rearranged addresses of the address blocksin the protected address range are located based on the addressconversion table.
 5. The method for protecting digital informationaccording to claim 1, wherein, in step (A), an address conversion keyinputted externally is accepted, and the address block rearranging ruleis constructed using a number of the address blocks and the addressconversion key.
 6. The method for protecting digital informationaccording to claim 5, wherein, in step (A), the address blockrearranging rule is to use a reproducible random sequence arrangingscheme which includes utilizing a computer function Rand with a seed togenerate a random number sequence ranging from 0 to the number of theaddress blocks, and exchanging an ith address block with an addressblock having an ith position in the random number sequence to therebygenerate an address conversion table.
 7. The method for protectingdigital information according to claim 6, wherein, in step (C), therearranged addresses of the address blocks in the protected addressrange are located according to the address conversion table.
 8. Themethod for protecting digital information according to claim 1, wherein,in step (B), the data is encrypted data that is encrypted using anencryption algorithm and an encryption code.
 9. A method for protectingdigital information, comprising: (A) dividing a protected address rangeinto a plurality of first conversion batches, converting an addressrange of each of the first conversion batches into a plurality of firstaddress blocks based on a first conversion unit, and generating a firstaddress block rearranging rule for rearranging the first address blocksusing the first address blocks as a parameter; (B) dividing theprotected address range into a plurality of second conversion batches,converting an address range of each of the second conversion batchesinto a plurality of second address blocks based on a preset secondconversion unit, and generating a second address block rearranging rulefor rearranging the second address blocks using the second addressblocks as a parameter; (C) dividing the protected address range into atleast one third conversion batch, converting an address range of said atleast one third conversion batch into a plurality of third addressblocks based on a preset third conversion unit, and generating a thirdaddress block rearranging rule for rearranging the third address blocksusing the third address blocks as a parameter; and (D) when it isdesired to load data into an address batch of the protected addressrange, determining the first conversion batch to which the address batchbelongs, converting the address batch into a plurality of address blocksbased on the first conversion unit, locating rearranged addresses of theaddress blocks in the protected address range according to the first,second and third address block rearranging rules, and loading the datainto the rearranged addresses thus located.
 10. The method forprotecting digital information according to claim 9, wherein the data isencrypted data that is encrypted using an encryption algorithm and anencryption code.
 11. A computer accessible recording medium, which has adigital information protecting program recorded therein, the programbeing readable and executable to cause a computer to execute steps of amethod for protecting digital information, the method comprising: (A)converting a protected address range into a plurality of address blocksbased on a preset conversion unit, and generating an address blockrearranging rule using the address blocks as a parameter; (B) when it isdesired to load data into an address batch of the protected addressrange, converting the address batch into a plurality address blocksbased on the conversion unit; and (C) locating rearranged addresses ofthe address blocks in the protected address range according to theaddress block rearranging rule, and loading the data into the rearrangedaddresses.
 12. A computer accessible recording medium, which has adigital information protecting program recorded therein, the programbeing readable and executable to cause a computer to execute steps of amethod for protecting digital information, the method comprising: (A)dividing a protected address range into a plurality of first conversionbatches, converting an address range of each of the first conversionbatches into a plurality of first address blocks based on a firstconversion unit, and generating a first address block rearranging rulefor rearranging the first address blocks using the first address blocksas a parameter; (B) dividing the protected address range into aplurality of second conversion batches, converting an address range ofeach of the second conversion batches into a plurality of second addressblocks based on a preset second conversion unit, and generating a secondaddress block rearranging rule for rearranging the second address blocksusing the second address blocks as a parameter; (C) dividing theprotected address range into at least one third conversion batch,converting an address range of said at least one third conversion batchinto a plurality of third address blocks based on a preset thirdconversion unit, and generating a third address block rearranging rulefor rearranging the third address blocks using the third address blocksas a parameter; and (D) when it is desired to load data into an addressbatch of the protected address range, determining the first conversionbatch to which the address batch belongs, converting the address batchinto a plurality of address blocks based on the first conversion unit,locating rearranged addresses of the address blocks in the protectedaddress range according to the first, second and third address blockrearranging rules, and loading the data into the rearranged addressesthus located.
 13. A digital information protecting apparatus, which isloaded with a digital information protecting program, said digitalinformation protecting apparatus being capable of reading and executingsaid digital information protecting program to perform steps of a methodfor protecting digital information, the method comprising: (A)converting a protected address range into a plurality of address blocksbased on a preset conversion unit, and generating an address blockrearranging rule using the address blocks as a parameter; (B) when it isdesired to load data into an address batch of the protected addressrange, converting the address batch into a plurality address blocksbased on the conversion unit; and (C) locating rearranged addresses ofthe address blocks in the protected address range according to theaddress block rearranging rule, and loading the data into the rearrangedaddresses.
 14. A digital information protecting apparatus, which isloaded with a digital information protecting program, said digitalinformation protecting apparatus being capable of reading and executingsaid digital information protecting program to perform steps of a methodfor protecting digital information, the method comprising: (A) dividinga protected address range into a plurality of first conversion batches,converting an address range of each of the first conversion batches intoa plurality of first address blocks based on a first conversion unit,and generating a first address block rearranging rule for rearrangingthe first address blocks using the first address blocks as a parameter;(B) dividing the protected address range into a plurality of secondconversion batches, converting an address range of each of the secondconversion batches into a plurality of second address blocks based on apreset second conversion unit, and generating a second address blockrearranging rule for rearranging the second address blocks using thesecond address blocks as a parameter; (C) dividing the protected addressrange into at least one third conversion batch, converting an addressrange of said at least one third conversion batch into a plurality ofthird address blocks based on a preset third conversion unit, andgenerating a third address block rearranging rule for rearranging thethird address blocks using the third address blocks as a parameter; and(D) when it is desired to load data into an address batch of theprotected address range, determining the first conversion batch to whichthe address batch belongs, converting the address batch into a pluralityof address blocks based on the first conversion unit, locatingrearranged addresses of the address blocks in the protected addressrange according to the first, second and third address block rearrangingrules, and loading the data into the rearranged addresses thus located.